Conventionally, a software vendor may deploy a server to a customer's internal network to manage and to maintain software licensed to the customer. Typically, the server provides a web-based graphical user interface (GUI) to allow an administrator of the internal network to perform administrative tasks, such as creating provisioning profiles, configuring and initializing computing machines, installing software, etc. Through the web-based GUI, the administrator is given indirect access to the data and functions of the software provided by the software vendors.
Although conventional web-based GUI is generally easy to use because of the user-friendly nature of GUI, the conventional web-based GUI typically limits the way the administrator may interact with the underlying software. For example, the conventional web-based GUI limits the type and format of data to be input via the conventional web-based GUI in order to allow the API to forward the data input via the GUI to the underlying software. The administrator does not have direct access to the underlying software. As a result, the administrator cannot automate the performance of many routine administrative tasks using the conventional web-based GUI. For customers having a large number of computing machines in the internal network, it takes a long time for the administrator to perform many routine administrative tasks on all of the computing machines.